package com.qijian.maindata.domain.query;

import com.baomidou.mybatisplus.annotation.TableName;
import com.qijian.common.utils.mybatis.WhereType;
import com.qijian.common.utils.mybatis.WhereTypeEnum;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * 工艺绩效对象 查询条件类
 *
 * @author qijian
 * @date 2022-05-17
 */

@Data
@ToString
@TableName("main_process_performance")
public class ProcessPerformanceQuery {

    @WhereType(filed = "work_id")
    private Long workId;
    @WhereType(filed = "work_id", type = WhereTypeEnum.IN)
    private Set<Long> ids;
    @WhereType(filed = "bom_id")
    private Long bomId;
    @WhereType(filed = "manage_user_id")
    private Long manageUserId;
    @WhereType(filed = "manage_nick_name", type = WhereTypeEnum.LIKE)
    private String manageNickName;
    @WhereType(filed = "manage_dept_id")
    private Long manageDeptId;
    @WhereType(filed = "manage_dept_name")
    private String manageDeptName;
    @WhereType(filed = "work_code", type = WhereTypeEnum.LIKE)
    private String workCode;
    @WhereType(filed = "item_id")
    private Long itemId;
    @WhereType(filed = "item_name", type = WhereTypeEnum.LIKE)
    private String itemName;
    @WhereType(filed = "process_name", type = WhereTypeEnum.LIKE)
    private String processName;
    @WhereType(filed = "work_number")
    private Long workNumber;
    @WhereType(filed = "work_time")
    private BigDecimal workTime;
    @WhereType(filed = "work_cost")
    private BigDecimal workCost;
    @WhereType(filed = "work_start_time", type = WhereTypeEnum.BETWEEN)
    private Date[] workStartTime;
    @WhereType(filed = "work_end_time", type = WhereTypeEnum.BETWEEN)
    private Date[] workEndTime;
    @WhereType(filed = "status")
    private Integer status;
    @WhereType(filed = "status", type = WhereTypeEnum.NEQ)
    private Integer statusNeq;
    @WhereType(filed = "remark")
    private String remark;
    @WhereType(filed = "user_id")
    private Long userId;
    @WhereType(filed = "nick_name", type = WhereTypeEnum.LIKE)
    private String nickName;
    @WhereType(filed = "times")
    private BigDecimal times;
    @WhereType(filed = "prices")
    private BigDecimal prices;
    @WhereType(filed = "dept_id")
    private Long deptId;
    @WhereType(filed = "dept_name")
    private String deptName;
    @WhereType(filed = "create_time", type = WhereTypeEnum.BETWEEN)
    private List<String> createTimes;
    @WhereType(filed = "project_no", type = WhereTypeEnum.LIKE)
    private String projectNo;
    @WhereType(filed = "work_type", type = WhereTypeEnum.LIKE)
    private String workType;
    @WhereType(filed = "product_name", type = WhereTypeEnum.LIKE)
    private String productName;
    @WhereType(filed = "create_time", type = WhereTypeEnum.BETWEEN)
    private Date[] createTime;
    @WhereType(func = "(manage_user_id = {1} or user_id = {1})")
    private Long userIdScope;
    @WhereType(ignore = true)
    private Integer current;
    @WhereType(ignore = true)
    private Integer size;
    @WhereType(ignore = true)
    private String year;
    @WhereType(ignore = true)
    private Integer type;

    @WhereType(ignore = true)
    private String day;

    //1 非工装部绩效  2 工装部绩效
    @WhereType(filed = "order_type")
    private Integer orderType;
}
